/*
 *    Geotoolkit - An Open Source Java GIS Toolkit
 *    http://www.geotoolkit.org
 *
 *    (C) 2008 - 2009, Geomatys
 *
 *    This library is free software; you can redistribute it and/or
 *    modify it under the terms of the GNU Lesser General Public
 *    License as published by the Free Software Foundation; either
 *    version 2.1 of the License, or (at your option) any later version.
 *
 *    This library is distributed in the hope that it will be useful,
 *    but WITHOUT ANY WARRANTY; without even the implied warranty of
 *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 *    Lesser General Public License for more details.
 */
package org.geotoolkit.xal.xml.v20;

import javax.xml.bind.JAXBElement;
import javax.xml.bind.annotation.XmlElementDecl;
import javax.xml.bind.annotation.XmlRegistry;
import javax.xml.namespace.QName;


/**
 * This object contains factory methods for each
 * Java content interface and Java element interface
 * generated in the oasis.names.tc.ciq.xsdschema.xal._2 package.
 * <p>An ObjectFactory allows you to programatically
 * construct new instances of the Java representation
 * for XML content. The Java representation of XML
 * content can consist of schema derived interfaces
 * and classes representing the binding of schema
 * type definitions, element declarations and model
 * groups.  Factory methods for each of these are
 * provided in this class.
 *
 * @module
 */
@XmlRegistry
public class ObjectFactory {

    private static final QName _AddressDetails_QNAME = new QName("urn:oasis:names:tc:ciq:xsdschema:xAL:2.0", "AddressDetails");

    /**
     * Create a new ObjectFactory that can be used to create new instances of schema derived classes for package: oasis.names.tc.ciq.xsdschema.xal._2
     *
     */
    public ObjectFactory() {
    }

    /**
     * Create an instance of {@link AddressDetails.PostalServiceElements.AddressLongitude }
     *
     */
    public AddressDetails.PostalServiceElements.AddressLongitude createAddressDetailsPostalServiceElementsAddressLongitude() {
        return new AddressDetails.PostalServiceElements.AddressLongitude();
    }

    /**
     * Create an instance of {@link DependentLocalityType.DependentLocalityNumber }
     *
     */
    public DependentLocalityType.DependentLocalityNumber createDependentLocalityTypeDependentLocalityNumber() {
        return new DependentLocalityType.DependentLocalityNumber();
    }

    /**
     * Create an instance of {@link Premise.PremiseNumberRange.PremiseNumberRangeFrom }
     *
     */
    public Premise.PremiseNumberRange.PremiseNumberRangeFrom createPremisePremiseNumberRangePremiseNumberRangeFrom() {
        return new Premise.PremiseNumberRange.PremiseNumberRangeFrom();
    }

    /**
     * Create an instance of {@link CountryName }
     *
     */
    public CountryName createCountryName() {
        return new CountryName();
    }

    /**
     * Create an instance of {@link SubPremiseType.SubPremiseLocation }
     *
     */
    public SubPremiseType.SubPremiseLocation createSubPremiseTypeSubPremiseLocation() {
        return new SubPremiseType.SubPremiseLocation();
    }

    /**
     * Create an instance of {@link AddressDetails.PostalServiceElements.AddressLatitude }
     *
     */
    public AddressDetails.PostalServiceElements.AddressLatitude createAddressDetailsPostalServiceElementsAddressLatitude() {
        return new AddressDetails.PostalServiceElements.AddressLatitude();
    }

    /**
     * Create an instance of {@link AddressDetails.PostalServiceElements.Barcode }
     *
     */
    public AddressDetails.PostalServiceElements.Barcode createAddressDetailsPostalServiceElementsBarcode() {
        return new AddressDetails.PostalServiceElements.Barcode();
    }

    /**
     * Create an instance of {@link PostalRouteType.PostalRouteNumber }
     *
     */
    public PostalRouteType.PostalRouteNumber createPostalRouteTypePostalRouteNumber() {
        return new PostalRouteType.PostalRouteNumber();
    }

    /**
     * Create an instance of {@link ThoroughfareTrailingTypeType }
     *
     */
    public ThoroughfareTrailingTypeType createThoroughfareTrailingTypeType() {
        return new ThoroughfareTrailingTypeType();
    }

    /**
     * Create an instance of {@link PostalCode.PostTown }
     *
     */
    public PostalCode.PostTown createPostalCodePostTown() {
        return new PostalCode.PostTown();
    }

    /**
     * Create an instance of {@link AddressDetails.PostalServiceElements.AddressLongitudeDirection }
     *
     */
    public AddressDetails.PostalServiceElements.AddressLongitudeDirection createAddressDetailsPostalServiceElementsAddressLongitudeDirection() {
        return new AddressDetails.PostalServiceElements.AddressLongitudeDirection();
    }

    /**
     * Create an instance of {@link ThoroughfareNumberSuffix }
     *
     */
    public ThoroughfareNumberSuffix createThoroughfareNumberSuffix() {
        return new ThoroughfareNumberSuffix();
    }

    /**
     * Create an instance of {@link PostBox }
     *
     */
    public PostBox createPostBox() {
        return new PostBox();
    }

    /**
     * Create an instance of {@link PremiseNumberSuffix }
     *
     */
    public PremiseNumberSuffix createPremiseNumberSuffix() {
        return new PremiseNumberSuffix();
    }

    /**
     * Create an instance of {@link LargeMailUserType.LargeMailUserName }
     *
     */
    public LargeMailUserType.LargeMailUserName createLargeMailUserTypeLargeMailUserName() {
        return new LargeMailUserType.LargeMailUserName();
    }

    /**
     * Create an instance of {@link AdministrativeArea.SubAdministrativeArea.SubAdministrativeAreaName }
     *
     */
    public AdministrativeArea.SubAdministrativeArea.SubAdministrativeAreaName createAdministrativeAreaSubAdministrativeAreaSubAdministrativeAreaName() {
        return new AdministrativeArea.SubAdministrativeArea.SubAdministrativeAreaName();
    }

    /**
     * Create an instance of {@link MailStopType.MailStopName }
     *
     */
    public MailStopType.MailStopName createMailStopTypeMailStopName() {
        return new MailStopType.MailStopName();
    }

    /**
     * Create an instance of {@link Premise }
     *
     */
    public Premise createPremise() {
        return new Premise();
    }

    /**
     * Create an instance of {@link AddressLine }
     *
     */
    public AddressLine createAddressLine() {
        return new AddressLine();
    }

    /**
     * Create an instance of {@link AdministrativeArea }
     *
     */
    public AdministrativeArea createAdministrativeArea() {
        return new AdministrativeArea();
    }

    /**
     * Create an instance of {@link Locality.LocalityName }
     *
     */
    public Locality.LocalityName createLocalityLocalityName() {
        return new Locality.LocalityName();
    }

    /**
     * Create an instance of {@link AddressDetails.PostalServiceElements.AddressIdentifier }
     *
     */
    public AddressDetails.PostalServiceElements.AddressIdentifier createAddressDetailsPostalServiceElementsAddressIdentifier() {
        return new AddressDetails.PostalServiceElements.AddressIdentifier();
    }

    /**
     * Create an instance of {@link SubPremiseType }
     *
     */
    public SubPremiseType createSubPremiseType() {
        return new SubPremiseType();
    }

    /**
     * Create an instance of {@link Thoroughfare.ThoroughfareNumberRange.ThoroughfareNumberTo }
     *
     */
    public Thoroughfare.ThoroughfareNumberRange.ThoroughfareNumberTo createThoroughfareThoroughfareNumberRangeThoroughfareNumberTo() {
        return new Thoroughfare.ThoroughfareNumberRange.ThoroughfareNumberTo();
    }

    /**
     * Create an instance of {@link PremiseNumberPrefix }
     *
     */
    public PremiseNumberPrefix createPremiseNumberPrefix() {
        return new PremiseNumberPrefix();
    }

    /**
     * Create an instance of {@link LargeMailUserType }
     *
     */
    public LargeMailUserType createLargeMailUserType() {
        return new LargeMailUserType();
    }

    /**
     * Create an instance of {@link PostBox.PostBoxNumberExtension }
     *
     */
    public PostBox.PostBoxNumberExtension createPostBoxPostBoxNumberExtension() {
        return new PostBox.PostBoxNumberExtension();
    }

    /**
     * Create an instance of {@link DependentLocalityType.DependentLocalityName }
     *
     */
    public DependentLocalityType.DependentLocalityName createDependentLocalityTypeDependentLocalityName() {
        return new DependentLocalityType.DependentLocalityName();
    }

    /**
     * Create an instance of {@link PostalRouteType }
     *
     */
    public PostalRouteType createPostalRouteType() {
        return new PostalRouteType();
    }

    /**
     * Create an instance of {@link PostalCode.PostTown.PostTownName }
     *
     */
    public PostalCode.PostTown.PostTownName createPostalCodePostTownPostTownName() {
        return new PostalCode.PostTown.PostTownName();
    }

    /**
     * Create an instance of {@link ThoroughfareLeadingTypeType }
     *
     */
    public ThoroughfareLeadingTypeType createThoroughfareLeadingTypeType() {
        return new ThoroughfareLeadingTypeType();
    }

    /**
     * Create an instance of {@link AddressDetails.PostalServiceElements.EndorsementLineCode }
     *
     */
    public AddressDetails.PostalServiceElements.EndorsementLineCode createAddressDetailsPostalServiceElementsEndorsementLineCode() {
        return new AddressDetails.PostalServiceElements.EndorsementLineCode();
    }

    /**
     * Create an instance of {@link PostOffice.PostOfficeName }
     *
     */
    public PostOffice.PostOfficeName createPostOfficePostOfficeName() {
        return new PostOffice.PostOfficeName();
    }

    /**
     * Create an instance of {@link PostOffice }
     *
     */
    public PostOffice createPostOffice() {
        return new PostOffice();
    }

    /**
     * Create an instance of {@link BuildingNameType }
     *
     */
    public BuildingNameType createBuildingNameType() {
        return new BuildingNameType();
    }

    /**
     * Create an instance of {@link AddressDetails.Country.CountryNameCode }
     *
     */
    public AddressDetails.Country.CountryNameCode createAddressDetailsCountryCountryNameCode() {
        return new AddressDetails.Country.CountryNameCode();
    }

    /**
     * Create an instance of {@link PostBox.PostBoxNumberPrefix }
     *
     */
    public PostBox.PostBoxNumberPrefix createPostBoxPostBoxNumberPrefix() {
        return new PostBox.PostBoxNumberPrefix();
    }

    /**
     * Create an instance of {@link Thoroughfare.ThoroughfareNumberRange.ThoroughfareNumberFrom }
     *
     */
    public Thoroughfare.ThoroughfareNumberRange.ThoroughfareNumberFrom createThoroughfareThoroughfareNumberRangeThoroughfareNumberFrom() {
        return new Thoroughfare.ThoroughfareNumberRange.ThoroughfareNumberFrom();
    }

    /**
     * Create an instance of {@link Premise.PremiseName }
     *
     */
    public Premise.PremiseName createPremisePremiseName() {
        return new Premise.PremiseName();
    }

    /**
     * Create an instance of {@link ThoroughfarePostDirectionType }
     *
     */
    public ThoroughfarePostDirectionType createThoroughfarePostDirectionType() {
        return new ThoroughfarePostDirectionType();
    }

    /**
     * Create an instance of {@link PremiseNumber }
     *
     */
    public PremiseNumber createPremiseNumber() {
        return new PremiseNumber();
    }

    /**
     * Create an instance of {@link Thoroughfare }
     *
     */
    public Thoroughfare createThoroughfare() {
        return new Thoroughfare();
    }

    /**
     * Create an instance of {@link ThoroughfarePreDirectionType }
     *
     */
    public ThoroughfarePreDirectionType createThoroughfarePreDirectionType() {
        return new ThoroughfarePreDirectionType();
    }

    /**
     * Create an instance of {@link AdministrativeArea.SubAdministrativeArea }
     *
     */
    public AdministrativeArea.SubAdministrativeArea createAdministrativeAreaSubAdministrativeArea() {
        return new AdministrativeArea.SubAdministrativeArea();
    }

    /**
     * Create an instance of {@link AddressDetails.PostalServiceElements.SupplementaryPostalServiceData }
     *
     */
    public AddressDetails.PostalServiceElements.SupplementaryPostalServiceData createAddressDetailsPostalServiceElementsSupplementaryPostalServiceData() {
        return new AddressDetails.PostalServiceElements.SupplementaryPostalServiceData();
    }

    /**
     * Create an instance of {@link AddressDetails.Address }
     *
     */
    public AddressDetails.Address createAddressDetailsAddress() {
        return new AddressDetails.Address();
    }

    /**
     * Create an instance of {@link Premise.PremiseNumberRange.PremiseNumberRangeTo }
     *
     */
    public Premise.PremiseNumberRange.PremiseNumberRangeTo createPremisePremiseNumberRangePremiseNumberRangeTo() {
        return new Premise.PremiseNumberRange.PremiseNumberRangeTo();
    }

    /**
     * Create an instance of {@link Thoroughfare.DependentThoroughfare }
     *
     */
    public Thoroughfare.DependentThoroughfare createThoroughfareDependentThoroughfare() {
        return new Thoroughfare.DependentThoroughfare();
    }

    /**
     * Create an instance of {@link SubPremiseType.SubPremiseNumberSuffix }
     *
     */
    public SubPremiseType.SubPremiseNumberSuffix createSubPremiseTypeSubPremiseNumberSuffix() {
        return new SubPremiseType.SubPremiseNumberSuffix();
    }

    /**
     * Create an instance of {@link PostOffice.PostOfficeNumber }
     *
     */
    public PostOffice.PostOfficeNumber createPostOfficePostOfficeNumber() {
        return new PostOffice.PostOfficeNumber();
    }

    /**
     * Create an instance of {@link PostBox.PostBoxNumber }
     *
     */
    public PostBox.PostBoxNumber createPostBoxPostBoxNumber() {
        return new PostBox.PostBoxNumber();
    }

    /**
     * Create an instance of {@link MailStopType }
     *
     */
    public MailStopType createMailStopType() {
        return new MailStopType();
    }

    /**
     * Create an instance of {@link FirmType.FirmName }
     *
     */
    public FirmType.FirmName createFirmTypeFirmName() {
        return new FirmType.FirmName();
    }

    /**
     * Create an instance of {@link Department.DepartmentName }
     *
     */
    public Department.DepartmentName createDepartmentDepartmentName() {
        return new Department.DepartmentName();
    }

    /**
     * Create an instance of {@link FirmType }
     *
     */
    public FirmType createFirmType() {
        return new FirmType();
    }

    /**
     * Create an instance of {@link Locality }
     *
     */
    public Locality createLocality() {
        return new Locality();
    }

    /**
     * Create an instance of {@link AddressDetails.PostalServiceElements.SortingCode }
     *
     */
    public AddressDetails.PostalServiceElements.SortingCode createAddressDetailsPostalServiceElementsSortingCode() {
        return new AddressDetails.PostalServiceElements.SortingCode();
    }

    /**
     * Create an instance of {@link XAL }
     *
     */
    public XAL createXAL() {
        return new XAL();
    }

    /**
     * Create an instance of {@link Department }
     *
     */
    public Department createDepartment() {
        return new Department();
    }

    /**
     * Create an instance of {@link DependentLocalityType }
     *
     */
    public DependentLocalityType createDependentLocalityType() {
        return new DependentLocalityType();
    }

    /**
     * Create an instance of {@link Premise.PremiseNumberRange }
     *
     */
    public Premise.PremiseNumberRange createPremisePremiseNumberRange() {
        return new Premise.PremiseNumberRange();
    }

    /**
     * Create an instance of {@link PostalCode.PostalCodeNumberExtension }
     *
     */
    public PostalCode.PostalCodeNumberExtension createPostalCodePostalCodeNumberExtension() {
        return new PostalCode.PostalCodeNumberExtension();
    }

    /**
     * Create an instance of {@link SubPremiseType.SubPremiseName }
     *
     */
    public SubPremiseType.SubPremiseName createSubPremiseTypeSubPremiseName() {
        return new SubPremiseType.SubPremiseName();
    }

    /**
     * Create an instance of {@link AddressDetails.PostalServiceElements.KeyLineCode }
     *
     */
    public AddressDetails.PostalServiceElements.KeyLineCode createAddressDetailsPostalServiceElementsKeyLineCode() {
        return new AddressDetails.PostalServiceElements.KeyLineCode();
    }

    /**
     * Create an instance of {@link AddressDetails.Country }
     *
     */
    public AddressDetails.Country createAddressDetailsCountry() {
        return new AddressDetails.Country();
    }

    /**
     * Create an instance of {@link AddressDetails.PostalServiceElements.AddressLatitudeDirection }
     *
     */
    public AddressDetails.PostalServiceElements.AddressLatitudeDirection createAddressDetailsPostalServiceElementsAddressLatitudeDirection() {
        return new AddressDetails.PostalServiceElements.AddressLatitudeDirection();
    }

    /**
     * Create an instance of {@link AddressDetails.PostalServiceElements }
     *
     */
    public AddressDetails.PostalServiceElements createAddressDetailsPostalServiceElements() {
        return new AddressDetails.PostalServiceElements();
    }

    /**
     * Create an instance of {@link Premise.PremiseLocation }
     *
     */
    public Premise.PremiseLocation createPremisePremiseLocation() {
        return new Premise.PremiseLocation();
    }

    /**
     * Create an instance of {@link AddressLinesType }
     *
     */
    public AddressLinesType createAddressLinesType() {
        return new AddressLinesType();
    }

    /**
     * Create an instance of {@link PostalCode }
     *
     */
    public PostalCode createPostalCode() {
        return new PostalCode();
    }

    /**
     * Create an instance of {@link LargeMailUserType.LargeMailUserIdentifier }
     *
     */
    public LargeMailUserType.LargeMailUserIdentifier createLargeMailUserTypeLargeMailUserIdentifier() {
        return new LargeMailUserType.LargeMailUserIdentifier();
    }

    /**
     * Create an instance of {@link ThoroughfareNumber }
     *
     */
    public ThoroughfareNumber createThoroughfareNumber() {
        return new ThoroughfareNumber();
    }

    /**
     * Create an instance of {@link AddressDetails }
     *
     */
    public AddressDetails createAddressDetails() {
        return new AddressDetails();
    }

    /**
     * Create an instance of {@link PostalCode.PostTown.PostTownSuffix }
     *
     */
    public PostalCode.PostTown.PostTownSuffix createPostalCodePostTownPostTownSuffix() {
        return new PostalCode.PostTown.PostTownSuffix();
    }

    /**
     * Create an instance of {@link ThoroughfareNameType }
     *
     */
    public ThoroughfareNameType createThoroughfareNameType() {
        return new ThoroughfareNameType();
    }

    /**
     * Create an instance of {@link PostBox.PostBoxNumberSuffix }
     *
     */
    public PostBox.PostBoxNumberSuffix createPostBoxPostBoxNumberSuffix() {
        return new PostBox.PostBoxNumberSuffix();
    }

    /**
     * Create an instance of {@link PostalCode.PostalCodeNumber }
     *
     */
    public PostalCode.PostalCodeNumber createPostalCodePostalCodeNumber() {
        return new PostalCode.PostalCodeNumber();
    }

    /**
     * Create an instance of {@link SubPremiseType.SubPremiseNumber }
     *
     */
    public SubPremiseType.SubPremiseNumber createSubPremiseTypeSubPremiseNumber() {
        return new SubPremiseType.SubPremiseNumber();
    }

    /**
     * Create an instance of {@link SubPremiseType.SubPremiseNumberPrefix }
     *
     */
    public SubPremiseType.SubPremiseNumberPrefix createSubPremiseTypeSubPremiseNumberPrefix() {
        return new SubPremiseType.SubPremiseNumberPrefix();
    }

    /**
     * Create an instance of {@link AdministrativeArea.AdministrativeAreaName }
     *
     */
    public AdministrativeArea.AdministrativeAreaName createAdministrativeAreaAdministrativeAreaName() {
        return new AdministrativeArea.AdministrativeAreaName();
    }

    /**
     * Create an instance of {@link Thoroughfare.ThoroughfareNumberRange }
     *
     */
    public Thoroughfare.ThoroughfareNumberRange createThoroughfareThoroughfareNumberRange() {
        return new Thoroughfare.ThoroughfareNumberRange();
    }

    /**
     * Create an instance of {@link ThoroughfareNumberPrefix }
     *
     */
    public ThoroughfareNumberPrefix createThoroughfareNumberPrefix() {
        return new ThoroughfareNumberPrefix();
    }

    /**
     * Create an instance of {@link MailStopType.MailStopNumber }
     *
     */
    public MailStopType.MailStopNumber createMailStopTypeMailStopNumber() {
        return new MailStopType.MailStopNumber();
    }

    /**
     * Create an instance of {@link PostalRouteType.PostalRouteName }
     *
     */
    public PostalRouteType.PostalRouteName createPostalRouteTypePostalRouteName() {
        return new PostalRouteType.PostalRouteName();
    }

    /**
     * Create an instance of {@link JAXBElement }{@code <}{@link AddressDetails }{@code >}}
     *
     */
    @XmlElementDecl(namespace = "urn:oasis:names:tc:ciq:xsdschema:xAL:2.0", name = "AddressDetails")
    public JAXBElement<AddressDetails> createAddressDetails(final AddressDetails value) {
        return new JAXBElement<AddressDetails>(_AddressDetails_QNAME, AddressDetails.class, null, value);
    }

}
